A computing device user today often has access to two or more computing devices, e.g., desktop computer, laptop computer, mainframe computer, personal digital assistant (PDA), smart phone, etc., and the user often shares files, e.g., text documents, images, videos, etc., among their various computing devices. Moreover, two or more computing device users can share files between each of their computing devices; e.g., two or more users may collaborate on one or more files for a work or school project, two or more users can share picture images, etc.
Users can synchronize, or sync, the folders and files in one or more file hierarchies stored on or otherwise accessible to their computing devices to maintain the same versions of files on each of the computing devices. Constraints designed into a synchronization system, e.g., no duplicative file names, etc., while instigated to help maintain synchronization order among member computing devices of a synchronization environment can be problematic to address in a timely and user-friendly manner.
For example, constraint management can generate false violation scenarios, i.e., seeming violation scenarios that do not represent true issues, that may be nonsensical for users and, thus, confusing and even difficult for users to attempt to resolve. Moreover, imposing constraint management in a synchronization environment master component, e.g., cloud, can limit the flexibility of the environment and require computing power at a central node at the expense of other tasks. Further, automated resolution of constraints can generate its own additional violations that, under certain conditions, can spiral into an unmanageable situation. Thus it is desirable to support a robust synchronization environment that can manage one or more constraints in an effective manner.